#include "exit.h"

void exit_gpio_isr_handler(void *args)
{
    uint32_t gpio_num = (uint32_t)args;
    if(gpio_num==BOOT_INTR_GPIO_PIN)
    {
        esp_rom_delay_us(20000);
        if( BOOT_INTRKEY_VALUE == BOOT_INTR_KEY_PRES )
        {
            LED_TOGGLE();
        }
    }
}

void exit_init(void)
{
    gpio_config_t boot_intr_init_stuct={0};
    boot_intr_init_stuct.pin_bit_mask = 1ULL << BOOT_INTR_GPIO_PIN;
    boot_intr_init_stuct.mode = GPIO_MODE_INPUT;
    boot_intr_init_stuct.intr_type = GPIO_INTR_NEGEDGE;
    boot_intr_init_stuct.pull_up_en = GPIO_PULLUP_ENABLE;
    boot_intr_init_stuct.pull_down_en = GPIO_PULLDOWN_DISABLE;
    gpio_config(&boot_intr_init_stuct);

    gpio_install_isr_service(ESP_INTR_FLAG_EDGE);
    gpio_isr_handler_add(BOOT_INTR_GPIO_PIN,exit_gpio_isr_handler,(void*)BOOT_INTR_GPIO_PIN);
    gpio_intr_enable(BOOT_INTR_GPIO_PIN);

}